package com.ruoyi.mp.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.mp.domain.MpMaterial;
import com.ruoyi.mp.domain.bo.MpMaterialBo;
import com.ruoyi.mp.domain.vo.MpMaterialVo;
import com.ruoyi.mp.domain.vo.material.MpMaterialUploadNewsImageReqVO;
import com.ruoyi.mp.domain.vo.material.MpMaterialUploadPermanentReqVO;
import com.ruoyi.mp.domain.vo.material.MpMaterialUploadTemporaryReqVO;
import me.chanjar.weixin.common.api.WxConsts;

import javax.validation.Valid;
import java.io.IOException;
import java.util.Collection;
import java.util.List;

/**
 * 素材管理Service接口
 *
 * @author yh
 * @date 2024-01-26
 */
public interface IMpMaterialService
{

    /**
     * 查询公众号素材列表
     */
    TableDataInfo<MpMaterialVo> queryPageList(MpMaterialBo bo, PageQuery pageQuery);

    List<MpMaterialVo> queryList(MpMaterialBo bo);


    /**
     * 删除素材管理信息
     *
     * @param id 素材管理主键
     * @return 结果
     */
    int deleteMpMaterialById(Long id);

    /**
     * 上传临时素材
     *
     * @param reqVO 请求
     * @return 素材
     * @throws IOException 文件操作发生异常
     */
    MpMaterial uploadTemporaryMaterial(@Valid MpMaterialUploadTemporaryReqVO reqVO) throws IOException;

    /**
     * 上传永久素材
     *
     * @param reqVO 请求
     * @return 素材
     * @throws IOException 文件操作发生异常
     */
    MpMaterial uploadPermanentMaterial(@Valid MpMaterialUploadPermanentReqVO reqVO) throws IOException;

    /**
     * 上传图文内容中的图片
     *
     * @param reqVO 上传请求
     * @return 图片地址
     */
    String uploadNewsImage(MpMaterialUploadNewsImageReqVO reqVO) throws IOException;

    /**
     * 获得素材列表
     *
     * @param mediaIds 素材 mediaId 列表
     * @return 素材列表
     */
    List<MpMaterial> getMaterialListByMediaId(Collection<String> mediaIds);

}
